// 《围棋》作者版权所有。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package os

import "syscall"

var executablePath string // 由sysauxv在中设置/运行时/os3_solaris。快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走快走

var initCwd, initCwdErr = Getwd()

func executable() (string, error) {
	path := executablePath
	if len(path) == 0 {
		path, err := syscall.Getexecname()
		if err != nil {
			return path, err
		}
	}
	if len(path) > 0 && path[0] != '/' {
		if initCwdErr != nil {
			return path, initCwdErr
		}
		if len(path) > 2 && path[0:2] == "./" {
			path = path[2:]
		}
		return initCwd + "/" + path, nil
	}
	return path, nil
}
